# This file is part of 'NTLM Authorization Proxy Server' http://sourceforge.net/projects/ntlmaps/
# Copyright 2001 Dmitry A. Rozmanov <dima@xenon.spb.ru>
#
# This library is free software: you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation, either
# version 3 of the License, or (at your option) any later version.
 
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
# 
# You should have received a copy of the GNU Lesser General Public
# License along with this library.  If not, see <http://www.gnu.org/licenses/> or <http://www.gnu.org/licenses/lgpl.txt>.
try:
    from .U32 import U32
except ValueError:
    from U32 import U32
# static unsigned long des_SPtrans[8][64]={

des_SPtrans =\
[
#nibble 0
[
U32(0x00820200), U32(0x00020000), U32(0x80800000), U32(0x80820200),
U32(0x00800000), U32(0x80020200), U32(0x80020000), U32(0x80800000),
U32(0x80020200), U32(0x00820200), U32(0x00820000), U32(0x80000200),
U32(0x80800200), U32(0x00800000), U32(0x00000000), U32(0x80020000),
U32(0x00020000), U32(0x80000000), U32(0x00800200), U32(0x00020200),
U32(0x80820200), U32(0x00820000), U32(0x80000200), U32(0x00800200),
U32(0x80000000), U32(0x00000200), U32(0x00020200), U32(0x80820000),
U32(0x00000200), U32(0x80800200), U32(0x80820000), U32(0x00000000),
U32(0x00000000), U32(0x80820200), U32(0x00800200), U32(0x80020000),
U32(0x00820200), U32(0x00020000), U32(0x80000200), U32(0x00800200),
U32(0x80820000), U32(0x00000200), U32(0x00020200), U32(0x80800000),
U32(0x80020200), U32(0x80000000), U32(0x80800000), U32(0x00820000),
U32(0x80820200), U32(0x00020200), U32(0x00820000), U32(0x80800200),
U32(0x00800000), U32(0x80000200), U32(0x80020000), U32(0x00000000),
U32(0x00020000), U32(0x00800000), U32(0x80800200), U32(0x00820200),
U32(0x80000000), U32(0x80820000), U32(0x00000200), U32(0x80020200),
],

#nibble 1
[
U32(0x10042004), U32(0x00000000), U32(0x00042000), U32(0x10040000),
U32(0x10000004), U32(0x00002004), U32(0x10002000), U32(0x00042000),
U32(0x00002000), U32(0x10040004), U32(0x00000004), U32(0x10002000),
U32(0x00040004), U32(0x10042000), U32(0x10040000), U32(0x00000004),
U32(0x00040000), U32(0x10002004), U32(0x10040004), U32(0x00002000),
U32(0x00042004), U32(0x10000000), U32(0x00000000), U32(0x00040004),
U32(0x10002004), U32(0x00042004), U32(0x10042000), U32(0x10000004),
U32(0x10000000), U32(0x00040000), U32(0x00002004), U32(0x10042004),
U32(0x00040004), U32(0x10042000), U32(0x10002000), U32(0x00042004),
U32(0x10042004), U32(0x00040004), U32(0x10000004), U32(0x00000000),
U32(0x10000000), U32(0x00002004), U32(0x00040000), U32(0x10040004),
U32(0x00002000), U32(0x10000000), U32(0x00042004), U32(0x10002004),
U32(0x10042000), U32(0x00002000), U32(0x00000000), U32(0x10000004),
U32(0x00000004), U32(0x10042004), U32(0x00042000), U32(0x10040000),
U32(0x10040004), U32(0x00040000), U32(0x00002004), U32(0x10002000),
U32(0x10002004), U32(0x00000004), U32(0x10040000), U32(0x00042000),
],

#nibble 2
[
U32(0x41000000), U32(0x01010040), U32(0x00000040), U32(0x41000040),
U32(0x40010000), U32(0x01000000), U32(0x41000040), U32(0x00010040),
U32(0x01000040), U32(0x00010000), U32(0x01010000), U32(0x40000000),
U32(0x41010040), U32(0x40000040), U32(0x40000000), U32(0x41010000),
U32(0x00000000), U32(0x40010000), U32(0x01010040), U32(0x00000040),
U32(0x40000040), U32(0x41010040), U32(0x00010000), U32(0x41000000),
U32(0x41010000), U32(0x01000040), U32(0x40010040), U32(0x01010000),
U32(0x00010040), U32(0x00000000), U32(0x01000000), U32(0x40010040),
U32(0x01010040), U32(0x00000040), U32(0x40000000), U32(0x00010000),
U32(0x40000040), U32(0x40010000), U32(0x01010000), U32(0x41000040),
U32(0x00000000), U32(0x01010040), U32(0x00010040), U32(0x41010000),
U32(0x40010000), U32(0x01000000), U32(0x41010040), U32(0x40000000),
U32(0x40010040), U32(0x41000000), U32(0x01000000), U32(0x41010040),
U32(0x00010000), U32(0x01000040), U32(0x41000040), U32(0x00010040),
U32(0x01000040), U32(0x00000000), U32(0x41010000), U32(0x40000040),
U32(0x41000000), U32(0x40010040), U32(0x00000040), U32(0x01010000),
],

#nibble 3
[
U32(0x00100402), U32(0x04000400), U32(0x00000002), U32(0x04100402),
U32(0x00000000), U32(0x04100000), U32(0x04000402), U32(0x00100002),
U32(0x04100400), U32(0x04000002), U32(0x04000000), U32(0x00000402),
U32(0x04000002), U32(0x00100402), U32(0x00100000), U32(0x04000000),
U32(0x04100002), U32(0x00100400), U32(0x00000400), U32(0x00000002),
U32(0x00100400), U32(0x04000402), U32(0x04100000), U32(0x00000400),
U32(0x00000402), U32(0x00000000), U32(0x00100002), U32(0x04100400),
U32(0x04000400), U32(0x04100002), U32(0x04100402), U32(0x00100000),
U32(0x04100002), U32(0x00000402), U32(0x00100000), U32(0x04000002),
U32(0x00100400), U32(0x04000400), U32(0x00000002), U32(0x04100000),
U32(0x04000402), U32(0x00000000), U32(0x00000400), U32(0x00100002),
U32(0x00000000), U32(0x04100002), U32(0x04100400), U32(0x00000400),
U32(0x04000000), U32(0x04100402), U32(0x00100402), U32(0x00100000),
U32(0x04100402), U32(0x00000002), U32(0x04000400), U32(0x00100402),
U32(0x00100002), U32(0x00100400), U32(0x04100000), U32(0x04000402),
U32(0x00000402), U32(0x04000000), U32(0x04000002), U32(0x04100400),
],

#nibble 4
[
U32(0x02000000), U32(0x00004000), U32(0x00000100), U32(0x02004108),
U32(0x02004008), U32(0x02000100), U32(0x00004108), U32(0x02004000),
U32(0x00004000), U32(0x00000008), U32(0x02000008), U32(0x00004100),
U32(0x02000108), U32(0x02004008), U32(0x02004100), U32(0x00000000),
U32(0x00004100), U32(0x02000000), U32(0x00004008), U32(0x00000108),
U32(0x02000100), U32(0x00004108), U32(0x00000000), U32(0x02000008),
U32(0x00000008), U32(0x02000108), U32(0x02004108), U32(0x00004008),
U32(0x02004000), U32(0x00000100), U32(0x00000108), U32(0x02004100),
U32(0x02004100), U32(0x02000108), U32(0x00004008), U32(0x02004000),
U32(0x00004000), U32(0x00000008), U32(0x02000008), U32(0x02000100),
U32(0x02000000), U32(0x00004100), U32(0x02004108), U32(0x00000000),
U32(0x00004108), U32(0x02000000), U32(0x00000100), U32(0x00004008),
U32(0x02000108), U32(0x00000100), U32(0x00000000), U32(0x02004108),
U32(0x02004008), U32(0x02004100), U32(0x00000108), U32(0x00004000),
U32(0x00004100), U32(0x02004008), U32(0x02000100), U32(0x00000108),
U32(0x00000008), U32(0x00004108), U32(0x02004000), U32(0x02000008),
],

#nibble 5
[
U32(0x20000010), U32(0x00080010), U32(0x00000000), U32(0x20080800),
U32(0x00080010), U32(0x00000800), U32(0x20000810), U32(0x00080000),
U32(0x00000810), U32(0x20080810), U32(0x00080800), U32(0x20000000),
U32(0x20000800), U32(0x20000010), U32(0x20080000), U32(0x00080810),
U32(0x00080000), U32(0x20000810), U32(0x20080010), U32(0x00000000),
U32(0x00000800), U32(0x00000010), U32(0x20080800), U32(0x20080010),
U32(0x20080810), U32(0x20080000), U32(0x20000000), U32(0x00000810),
U32(0x00000010), U32(0x00080800), U32(0x00080810), U32(0x20000800),
U32(0x00000810), U32(0x20000000), U32(0x20000800), U32(0x00080810),
U32(0x20080800), U32(0x00080010), U32(0x00000000), U32(0x20000800),
U32(0x20000000), U32(0x00000800), U32(0x20080010), U32(0x00080000),
U32(0x00080010), U32(0x20080810), U32(0x00080800), U32(0x00000010),
U32(0x20080810), U32(0x00080800), U32(0x00080000), U32(0x20000810),
U32(0x20000010), U32(0x20080000), U32(0x00080810), U32(0x00000000),
U32(0x00000800), U32(0x20000010), U32(0x20000810), U32(0x20080800),
U32(0x20080000), U32(0x00000810), U32(0x00000010), U32(0x20080010),
],

#nibble 6
[
U32(0x00001000), U32(0x00000080), U32(0x00400080), U32(0x00400001),
U32(0x00401081), U32(0x00001001), U32(0x00001080), U32(0x00000000),
U32(0x00400000), U32(0x00400081), U32(0x00000081), U32(0x00401000),
U32(0x00000001), U32(0x00401080), U32(0x00401000), U32(0x00000081),
U32(0x00400081), U32(0x00001000), U32(0x00001001), U32(0x00401081),
U32(0x00000000), U32(0x00400080), U32(0x00400001), U32(0x00001080),
U32(0x00401001), U32(0x00001081), U32(0x00401080), U32(0x00000001),
U32(0x00001081), U32(0x00401001), U32(0x00000080), U32(0x00400000),
U32(0x00001081), U32(0x00401000), U32(0x00401001), U32(0x00000081),
U32(0x00001000), U32(0x00000080), U32(0x00400000), U32(0x00401001),
U32(0x00400081), U32(0x00001081), U32(0x00001080), U32(0x00000000),
U32(0x00000080), U32(0x00400001), U32(0x00000001), U32(0x00400080),
U32(0x00000000), U32(0x00400081), U32(0x00400080), U32(0x00001080),
U32(0x00000081), U32(0x00001000), U32(0x00401081), U32(0x00400000),
U32(0x00401080), U32(0x00000001), U32(0x00001001), U32(0x00401081),
U32(0x00400001), U32(0x00401080), U32(0x00401000), U32(0x00001001),
],

#nibble 7
[
U32(0x08200020), U32(0x08208000), U32(0x00008020), U32(0x00000000),
U32(0x08008000), U32(0x00200020), U32(0x08200000), U32(0x08208020),
U32(0x00000020), U32(0x08000000), U32(0x00208000), U32(0x00008020),
U32(0x00208020), U32(0x08008020), U32(0x08000020), U32(0x08200000),
U32(0x00008000), U32(0x00208020), U32(0x00200020), U32(0x08008000),
U32(0x08208020), U32(0x08000020), U32(0x00000000), U32(0x00208000),
U32(0x08000000), U32(0x00200000), U32(0x08008020), U32(0x08200020),
U32(0x00200000), U32(0x00008000), U32(0x08208000), U32(0x00000020),
U32(0x00200000), U32(0x00008000), U32(0x08000020), U32(0x08208020),
U32(0x00008020), U32(0x08000000), U32(0x00000000), U32(0x00208000),
U32(0x08200020), U32(0x08008020), U32(0x08008000), U32(0x00200020),
U32(0x08208000), U32(0x00000020), U32(0x00200020), U32(0x08008000),
U32(0x08208020), U32(0x00200000), U32(0x08200000), U32(0x08000020),
U32(0x00208000), U32(0x00008020), U32(0x08008020), U32(0x08200000),
U32(0x00000020), U32(0x08208000), U32(0x00208020), U32(0x00000000),
U32(0x08000000), U32(0x08200020), U32(0x00008000), U32(0x00208020),
],
]

#static unsigned long des_skb[8][64]={

des_skb = \
[
#for C bits (numbered as per FIPS 46) 1 2 3 4 5 6
[
U32(0x00000000),U32(0x00000010),U32(0x20000000),U32(0x20000010),
U32(0x00010000),U32(0x00010010),U32(0x20010000),U32(0x20010010),
U32(0x00000800),U32(0x00000810),U32(0x20000800),U32(0x20000810),
U32(0x00010800),U32(0x00010810),U32(0x20010800),U32(0x20010810),
U32(0x00000020),U32(0x00000030),U32(0x20000020),U32(0x20000030),
U32(0x00010020),U32(0x00010030),U32(0x20010020),U32(0x20010030),
U32(0x00000820),U32(0x00000830),U32(0x20000820),U32(0x20000830),
U32(0x00010820),U32(0x00010830),U32(0x20010820),U32(0x20010830),
U32(0x00080000),U32(0x00080010),U32(0x20080000),U32(0x20080010),
U32(0x00090000),U32(0x00090010),U32(0x20090000),U32(0x20090010),
U32(0x00080800),U32(0x00080810),U32(0x20080800),U32(0x20080810),
U32(0x00090800),U32(0x00090810),U32(0x20090800),U32(0x20090810),
U32(0x00080020),U32(0x00080030),U32(0x20080020),U32(0x20080030),
U32(0x00090020),U32(0x00090030),U32(0x20090020),U32(0x20090030),
U32(0x00080820),U32(0x00080830),U32(0x20080820),U32(0x20080830),
U32(0x00090820),U32(0x00090830),U32(0x20090820),U32(0x20090830),
],

#for C bits (numbered as per FIPS 46) 7 8 10 11 12 13
[
U32(0x00000000),U32(0x02000000),U32(0x00002000),U32(0x02002000),
U32(0x00200000),U32(0x02200000),U32(0x00202000),U32(0x02202000),
U32(0x00000004),U32(0x02000004),U32(0x00002004),U32(0x02002004),
U32(0x00200004),U32(0x02200004),U32(0x00202004),U32(0x02202004),
U32(0x00000400),U32(0x02000400),U32(0x00002400),U32(0x02002400),
U32(0x00200400),U32(0x02200400),U32(0x00202400),U32(0x02202400),
U32(0x00000404),U32(0x02000404),U32(0x00002404),U32(0x02002404),
U32(0x00200404),U32(0x02200404),U32(0x00202404),U32(0x02202404),
U32(0x10000000),U32(0x12000000),U32(0x10002000),U32(0x12002000),
U32(0x10200000),U32(0x12200000),U32(0x10202000),U32(0x12202000),
U32(0x10000004),U32(0x12000004),U32(0x10002004),U32(0x12002004),
U32(0x10200004),U32(0x12200004),U32(0x10202004),U32(0x12202004),
U32(0x10000400),U32(0x12000400),U32(0x10002400),U32(0x12002400),
U32(0x10200400),U32(0x12200400),U32(0x10202400),U32(0x12202400),
U32(0x10000404),U32(0x12000404),U32(0x10002404),U32(0x12002404),
U32(0x10200404),U32(0x12200404),U32(0x10202404),U32(0x12202404),
],

#for C bits (numbered as per FIPS 46) 14 15 16 17 19 20
[
U32(0x00000000),U32(0x00000001),U32(0x00040000),U32(0x00040001),
U32(0x01000000),U32(0x01000001),U32(0x01040000),U32(0x01040001),
U32(0x00000002),U32(0x00000003),U32(0x00040002),U32(0x00040003),
U32(0x01000002),U32(0x01000003),U32(0x01040002),U32(0x01040003),
U32(0x00000200),U32(0x00000201),U32(0x00040200),U32(0x00040201),
U32(0x01000200),U32(0x01000201),U32(0x01040200),U32(0x01040201),
U32(0x00000202),U32(0x00000203),U32(0x00040202),U32(0x00040203),
U32(0x01000202),U32(0x01000203),U32(0x01040202),U32(0x01040203),
U32(0x08000000),U32(0x08000001),U32(0x08040000),U32(0x08040001),
U32(0x09000000),U32(0x09000001),U32(0x09040000),U32(0x09040001),
U32(0x08000002),U32(0x08000003),U32(0x08040002),U32(0x08040003),
U32(0x09000002),U32(0x09000003),U32(0x09040002),U32(0x09040003),
U32(0x08000200),U32(0x08000201),U32(0x08040200),U32(0x08040201),
U32(0x09000200),U32(0x09000201),U32(0x09040200),U32(0x09040201),
U32(0x08000202),U32(0x08000203),U32(0x08040202),U32(0x08040203),
U32(0x09000202),U32(0x09000203),U32(0x09040202),U32(0x09040203),
],

#for C bits (numbered as per FIPS 46) 21 23 24 26 27 28
[
U32(0x00000000),U32(0x00100000),U32(0x00000100),U32(0x00100100),
U32(0x00000008),U32(0x00100008),U32(0x00000108),U32(0x00100108),
U32(0x00001000),U32(0x00101000),U32(0x00001100),U32(0x00101100),
U32(0x00001008),U32(0x00101008),U32(0x00001108),U32(0x00101108),
U32(0x04000000),U32(0x04100000),U32(0x04000100),U32(0x04100100),
U32(0x04000008),U32(0x04100008),U32(0x04000108),U32(0x04100108),
U32(0x04001000),U32(0x04101000),U32(0x04001100),U32(0x04101100),
U32(0x04001008),U32(0x04101008),U32(0x04001108),U32(0x04101108),
U32(0x00020000),U32(0x00120000),U32(0x00020100),U32(0x00120100),
U32(0x00020008),U32(0x00120008),U32(0x00020108),U32(0x00120108),
U32(0x00021000),U32(0x00121000),U32(0x00021100),U32(0x00121100),
U32(0x00021008),U32(0x00121008),U32(0x00021108),U32(0x00121108),
U32(0x04020000),U32(0x04120000),U32(0x04020100),U32(0x04120100),
U32(0x04020008),U32(0x04120008),U32(0x04020108),U32(0x04120108),
U32(0x04021000),U32(0x04121000),U32(0x04021100),U32(0x04121100),
U32(0x04021008),U32(0x04121008),U32(0x04021108),U32(0x04121108),
],

#for D bits (numbered as per FIPS 46) 1 2 3 4 5 6
[
U32(0x00000000),U32(0x10000000),U32(0x00010000),U32(0x10010000),
U32(0x00000004),U32(0x10000004),U32(0x00010004),U32(0x10010004),
U32(0x20000000),U32(0x30000000),U32(0x20010000),U32(0x30010000),
U32(0x20000004),U32(0x30000004),U32(0x20010004),U32(0x30010004),
U32(0x00100000),U32(0x10100000),U32(0x00110000),U32(0x10110000),
U32(0x00100004),U32(0x10100004),U32(0x00110004),U32(0x10110004),
U32(0x20100000),U32(0x30100000),U32(0x20110000),U32(0x30110000),
U32(0x20100004),U32(0x30100004),U32(0x20110004),U32(0x30110004),
U32(0x00001000),U32(0x10001000),U32(0x00011000),U32(0x10011000),
U32(0x00001004),U32(0x10001004),U32(0x00011004),U32(0x10011004),
U32(0x20001000),U32(0x30001000),U32(0x20011000),U32(0x30011000),
U32(0x20001004),U32(0x30001004),U32(0x20011004),U32(0x30011004),
U32(0x00101000),U32(0x10101000),U32(0x00111000),U32(0x10111000),
U32(0x00101004),U32(0x10101004),U32(0x00111004),U32(0x10111004),
U32(0x20101000),U32(0x30101000),U32(0x20111000),U32(0x30111000),
U32(0x20101004),U32(0x30101004),U32(0x20111004),U32(0x30111004),
],

#for D bits (numbered as per FIPS 46) 8 9 11 12 13 14
[
U32(0x00000000),U32(0x08000000),U32(0x00000008),U32(0x08000008),
U32(0x00000400),U32(0x08000400),U32(0x00000408),U32(0x08000408),
U32(0x00020000),U32(0x08020000),U32(0x00020008),U32(0x08020008),
U32(0x00020400),U32(0x08020400),U32(0x00020408),U32(0x08020408),
U32(0x00000001),U32(0x08000001),U32(0x00000009),U32(0x08000009),
U32(0x00000401),U32(0x08000401),U32(0x00000409),U32(0x08000409),
U32(0x00020001),U32(0x08020001),U32(0x00020009),U32(0x08020009),
U32(0x00020401),U32(0x08020401),U32(0x00020409),U32(0x08020409),
U32(0x02000000),U32(0x0A000000),U32(0x02000008),U32(0x0A000008),
U32(0x02000400),U32(0x0A000400),U32(0x02000408),U32(0x0A000408),
U32(0x02020000),U32(0x0A020000),U32(0x02020008),U32(0x0A020008),
U32(0x02020400),U32(0x0A020400),U32(0x02020408),U32(0x0A020408),
U32(0x02000001),U32(0x0A000001),U32(0x02000009),U32(0x0A000009),
U32(0x02000401),U32(0x0A000401),U32(0x02000409),U32(0x0A000409),
U32(0x02020001),U32(0x0A020001),U32(0x02020009),U32(0x0A020009),
U32(0x02020401),U32(0x0A020401),U32(0x02020409),U32(0x0A020409),
],

#for D bits (numbered as per FIPS 46) 16 17 18 19 20 21
[
U32(0x00000000),U32(0x00000100),U32(0x00080000),U32(0x00080100),
U32(0x01000000),U32(0x01000100),U32(0x01080000),U32(0x01080100),
U32(0x00000010),U32(0x00000110),U32(0x00080010),U32(0x00080110),
U32(0x01000010),U32(0x01000110),U32(0x01080010),U32(0x01080110),
U32(0x00200000),U32(0x00200100),U32(0x00280000),U32(0x00280100),
U32(0x01200000),U32(0x01200100),U32(0x01280000),U32(0x01280100),
U32(0x00200010),U32(0x00200110),U32(0x00280010),U32(0x00280110),
U32(0x01200010),U32(0x01200110),U32(0x01280010),U32(0x01280110),
U32(0x00000200),U32(0x00000300),U32(0x00080200),U32(0x00080300),
U32(0x01000200),U32(0x01000300),U32(0x01080200),U32(0x01080300),
U32(0x00000210),U32(0x00000310),U32(0x00080210),U32(0x00080310),
U32(0x01000210),U32(0x01000310),U32(0x01080210),U32(0x01080310),
U32(0x00200200),U32(0x00200300),U32(0x00280200),U32(0x00280300),
U32(0x01200200),U32(0x01200300),U32(0x01280200),U32(0x01280300),
U32(0x00200210),U32(0x00200310),U32(0x00280210),U32(0x00280310),
U32(0x01200210),U32(0x01200310),U32(0x01280210),U32(0x01280310),
],

#for D bits (numbered as per FIPS 46) 22 23 24 25 27 28
[
U32(0x00000000),U32(0x04000000),U32(0x00040000),U32(0x04040000),
U32(0x00000002),U32(0x04000002),U32(0x00040002),U32(0x04040002),
U32(0x00002000),U32(0x04002000),U32(0x00042000),U32(0x04042000),
U32(0x00002002),U32(0x04002002),U32(0x00042002),U32(0x04042002),
U32(0x00000020),U32(0x04000020),U32(0x00040020),U32(0x04040020),
U32(0x00000022),U32(0x04000022),U32(0x00040022),U32(0x04040022),
U32(0x00002020),U32(0x04002020),U32(0x00042020),U32(0x04042020),
U32(0x00002022),U32(0x04002022),U32(0x00042022),U32(0x04042022),
U32(0x00000800),U32(0x04000800),U32(0x00040800),U32(0x04040800),
U32(0x00000802),U32(0x04000802),U32(0x00040802),U32(0x04040802),
U32(0x00002800),U32(0x04002800),U32(0x00042800),U32(0x04042800),
U32(0x00002802),U32(0x04002802),U32(0x00042802),U32(0x04042802),
U32(0x00000820),U32(0x04000820),U32(0x00040820),U32(0x04040820),
U32(0x00000822),U32(0x04000822),U32(0x00040822),U32(0x04040822),
U32(0x00002820),U32(0x04002820),U32(0x00042820),U32(0x04042820),
U32(0x00002822),U32(0x04002822),U32(0x00042822),U32(0x04042822),
]

]